Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Windows] Fix CollectionView DisconnectHandler SelectionMode Crash #23726

Merged
merged 2 commits into from
Jul 20, 2024

Conversation

Foda
Copy link
Member

@Foda Foda commented Jul 19, 2024

Description of Change

Fix a crash when the DisconnectHandler is invoked on a CollectionView when multiple items are selected by reordering the unsubscription of SelectionChanged and clearing the SelectionModeProperty.

The issue was caused because oldListViewBase.ClearValue(ListViewBase.SelectionModeProperty) fires an SelectionChanged event, which runs code that shouldn't be run in a handler disconnect (the handler will be null).

Issues Fixed

Fixes #23649

@Foda Foda added platform/windows 🪟 area-controls-collectionview CollectionView, CarouselView, IndicatorView labels Jul 19, 2024
@Foda Foda requested a review from PureWeen July 19, 2024 19:23
@Foda Foda requested a review from a team as a code owner July 19, 2024 19:23
@Foda Foda requested a review from mattleibow July 19, 2024 19:23
@PureWeen
Copy link
Member

Test failure is on android and this PR only touches windows

@PureWeen PureWeen merged commit c8aa6f9 into main Jul 20, 2024
95 of 97 checks passed
@PureWeen PureWeen deleted the foda/CVDisconnect branch July 20, 2024 16:46
pictos pushed a commit to pictos/maui that referenced this pull request Jul 22, 2024
[Windows] Fix CollectionView DisconnectHandler SelectionMode Crash (dotnet#23726)

* Reorder events to prevent disconnect issues

* Add test

---------

Co-authored-by: Mike Corsaro <mikecorsaro@microsoft.com>

Use UIView.Window instead of the global window (dotnet#23693)

[Windows] Subscribe pointer events only when needed (dotnet#23515)

Fix iOS log exports (dotnet#23334)

* Fix ios Device Logging

* - fix up device test logging a bit more

* Update ui-tests-steps.yml

* Update ui-tests-steps.yml

* Update ios.cake

* Update ui-tests-steps.yml

* Update maui-templates.yml

* Update maui-templates.yml

remove code from oldFragment

add new shiny DialogFragment

refactoring code to find and dismiss DialogFragment

code cleanup

delete ModalContainer to use only ModalFragment

handle animation and add a map between page and dialogFragment

We've back button enabled!

After dismissing several demons summoned using obscure Android APIs, I was able to deal with the BackButtonPressed event

add modal animations as anim.xml files

using cleanup

remowork PopModalPlatformAsync to work with dialogFragment

remove tag

final adjustments on DialogFragment

change the ShowNow for Show to fix the issue

Wait for animation to complete

change local functions order

fix build

create window hooks for android (like iOS)

clean up ModalFragment fields

change Dictionary to ConditionalWeakTable

clean up event animation

refactor on Null notation

remove comments

- adjust back button

- different back button

code style

remove unused prop.

fix DontPushModalPagesWhenWindowIsDeactivated DeviceTest

completes the task

return back the way how modalManager handles android modals

normilize animation duration

Co-authored-by: Shane Neuville <shane94@hotmail.com>

remove focusability code

change how fragments are looked-up

code style
@samhouts samhouts added the fixed-in-net9.0-nightly This may be available in a nightly release! label Aug 2, 2024
@samhouts samhouts added fixed-in-8.0.80 fixed-in-net9.0-nightly This may be available in a nightly release! and removed fixed-in-net9.0-nightly This may be available in a nightly release! labels Aug 8, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Sep 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-controls-collectionview CollectionView, CarouselView, IndicatorView fixed-in-8.0.80 fixed-in-net9.0-nightly This may be available in a nightly release! platform/windows 🪟
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CollectionView DisconnectHandler SelectionMode=Multiple Windows exception
3 participants